package main

import (
	"fmt"
	"os"
)

// 需求分析
// 编写一个学生管理系统，其菜单具有以下功能
//	1. 查看所有学生信息
//  2. 添加学员信息
//  3. 删除学生信息
//  4. 修改学员信息
//  5. 退出学生管理系统

// 编写功能菜单
func showMenu() {
	fmt.Println("欢迎来到学生管理系统")
	fmt.Println("1. 查看所有学生信息")
	fmt.Println("2. 添加学生信息")
	fmt.Println("3. 删除学生信息")
	fmt.Println("4. 修改学生信息")
	fmt.Println("5. 退出学生管理系统")
}
// 获取用户输入的学员信息
func getInput() *student {
	var(
		id int
		name string
		class string
	)
	fmt.Println("请按要求输入学员信息")
	fmt.Print("请输入学员的学号: ")
	fmt.Scanf("%d\n",&id)
	fmt.Print("请输入学员的姓名: ")
	fmt.Scanf("%s\n",&name)
	fmt.Print("请输入学员的班级: ")
	fmt.Scanf("%s\n",&class)
	stu:=newStudent(id,name,class) //调用student的构造函数造一个学生
	return stu
}
func main(){
	sm:=newstudnetmanager()
	for {
		// 1.打印菜单
		showMenu()
		// 2.等待用户的选择
		fmt.Print("请输入要执行的功能序号: ")
		var choice int
		fmt.Scanf("%d\n",&choice) //扫描用户输入的值
		fmt.Println("用户输入的功能序号是: ",choice)
		// 执行用户选择
		switch choice{
		// 查看学生信息
		case 1:
			sm.showStudent()
		// 添加学生信息
		case 2:
			stu:=getInput()
			sm.addStudent(stu)
		// 删除学生信息
		case 3:
			stu:=getInput()
			sm.deletestudent(stu)
		// 修改学生信息
		case 4:
			stu:=getInput()
			sm.changeStudent(stu)
		// 退出学生管理系统
		case 5:
			os.Exit(0)
		default:
			fmt.Println("您的输入有误~~~")
		}
	}
}
